<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>条件渲染</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <!-- 数组遍历 -->
        <ul>
            <!-- 
                第一个为item对象
                第二个为index索引值
             -->
            <li v-for="(item,index) of list" :key="item.id" v-if="item.isFalse">{{ index }} {{ index }}------》{{item}}
                <span v-for="(value, key, index) of item">
                    {{ index }}---{{ key }}: {{ value }}
                </span>
            </li>
        </ul>
        <!-- 对象遍历 -->
        <ul>
            <!-- 
                 value：值  key:key  index:索引值
                 第一个为value值，
                 第二个为name
                 第三个为索引
            -->
            <li v-for="(value, key, index) of object">{{ index }}---{{ key }}: {{ value }}</li>
        </ul>
        <!-- 显示过滤/排序结果 -->
        <ul>
            <li v-for="n in eventNumbers">{{n}}</li>
        </ul>

        <!-- 一段取值范围,取整数 -->
        <ul>
            <li v-for="n in 10">{{n}}</li>
        </ul>
        
        <ul>
            <template v-for="item in list">
                <li>{{ item.message }}</li>
                <li class="divider"></li>
            </template>
        </ul>
    </div>

    <script>
        /*
         *   一、Vue包含一组观察数组的变异方法，所以他们也能触发视图更新。
         *   1、push()方法可向数组的末尾添加一个或多个元素，并返回新的长度。
         *   2、pop()方法用于删除并返回数组的最后一个元素。
         *   3、shift()方法用于把数组的第一个元素从其中删除，并返回第一个元素的值。
         *   4、unshift()方法可向数组的开头添加一个或更多元素，并返回新的长度。
         *   
         *   index指的是索引值 howmany指的是删除的数量  后面的为新添加的对象
         *   5、splice(index,howmany,item1,.....,itemX) 方法向/从数组中添加/删除项目，然后返回被删除的项目（会改变原始数组）。
         *   6、sort()按照字符编码的顺序进行排序。
         *   7、reverse()用于颠倒数组中元素的顺序，改变原来的数组。
         */
        let app = new Vue({
            el: '#app',
            data: {
                list: [{
                        id: 1,
                        message: '通道一',
                        name: '哈哈',
                        isFalse:true
                    },
                    {
                        id: 2,
                        message: '通道二',
                        name: '哈哈',
                        isFalse:false

                    },
                    {
                        id: 3,
                        message: '通道三',
                        name: '哈哈',
                        isFalse:true
                    },
                    {
                        id: 4,
                        message: '通道四',
                        name: '哈哈',
                        isFalse:false
                    },
                    {
                        id: 5,
                        message: '通道五',
                        name: '哈哈',
                        isFalse:false
                    },
                ],
                object: {
                    name: '小明',
                    age: 10,
                },
                number: [1, 2, 3, 4, 5]
            },
            computed: {
                eventNumbers: function () {
                    return this.number.filter(function (number) {
                        return number % 2 === 0
                    })
                }
            }
        })
        /*
            VUE给对象添加属性
        */
        Vue.set(app.object, 'height', 180)
        // 设置单个属性
        app.$set(app.object, 'hobby', 'playing baseball')
        // 设置多个属性
        app.object = Object.assign({
            width: 50
        }, app.object)
    </script>

</body>

</html>